#ifndef VOLTAGE_READER
#define	VOLTAGE_READER

// ***************************************************************************
// CHANGE LOG
//
// ***************************************************************************

// ***************************************************************************
// ***************************************************************************
// Section: Includes
// ***************************************************************************
// ***************************************************************************
#include "AnalogSensor.h"
#include "IAnalogDigitalConverter.h"

// ***************************************************************************
// ***************************************************************************
// Section: Constants & Data Types
// ***************************************************************************
// ***************************************************************************

/*! \brief Reads a voltage from an Analog To Digital Converter (ADC)
 */
class VoltageReader : public AnalogSensor
{
  public:
	// Static Methods

	// Constructors
	VoltageReader(
			IAnalogDigitalConverter *adc,
			UINT32 channel,
			unsigned char channelNumber,
			unsigned char sensorNumber,
			 std::string sensorName);

	// Destructor
	virtual ~VoltageReader();

	// Methods
	virtual unsigned char GetChannelNumber();
	virtual unsigned char GetSensorNumber();
	virtual std::string GetSensorName();

  private:
	float _value;
	unsigned char _channelNumber;
	unsigned char _sensorNumber;
	std::string _sensorName;
};

#endif

